package org.web.base.domain.view;

import jakarta.validation.constraints.Pattern;
import lombok.Getter;
import lombok.Setter;

//import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.util.Date;


/***
 * 所有DTO和DO的基类，基类定义了常用的基本的属性信息。
 */
@Setter
@Getter
public class BaseDTO implements Serializable {

    /***
     * 记录数据的创建时间。类型：DATETIME。
     */
    private Date createdAt;

    /***
     * 记录数据的最后更新时间。类型：DATETIME。
     */
    private Date updatedAt;

    /***
     * 记录最后更新数据的用户ID或用户名。
     */
    private String updateBy = null;

    /***
     * 用于实现乐观锁或版本控制，确保并发修改时的数据一致性。
     * */
    private int updateVersion = 1;

    /**
     * 是否删除，标记是否逻辑删除，enum={Y:删除;N:不删除}
     */
    @Pattern(regexp = "^([YN])$", message = "Y:删除;N:不删除")
    private Character isDelete = 'N';

}
